--- id: TASK-023 title: 'Toggle checkbox state with a key (- [ ] <-> - [x])' status: "\U0001F7E6 Backlog" assignee: [] created_date: '2026-06-29 21:08' updated_date: '2026-06-29 21:43' labels: - feature dependencies: [] priority: low ordinal: 23000 --- ## Description From TASK-008 description (deferred, not an AC there): toggle the checkbox on the current list line between [ ] and [x] with a keybind, without hand-editing the brackets. Should work whether or not the cursor is on the brackets; no-op on non-checkbox lines. ## Acceptance Criteria - [ ] #1 A keybind toggles the current line's checkbox [ ] <-> [x] - [ ] #2 No-op on lines without a checkbox - [ ] #3 README/help document the key - [ ] #4 Mouse click on the checkbox glyph toggles it - [ ] #5 The toggle keybind works with the cursor anywhere on the line (not just on the brackets) ## Implementation Notes Scope expanded per user: toggle by (a) keybind with cursor anywhere on the line, and (b) mouse click on the checkbox glyph. Mouse handling lives in app.go (it owns tea.MouseMsg + margin/scroll->buffer mapping; see MoveToVisual); the toggle mutation itself should be an editor method (e.g. ToggleCheckbox) so it's unit-testable and undoable.